package com.aoorey.util;

import java.io.FileInputStream;
import java.io.IOException;
import java.io.InputStream;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Calendar;
import java.util.Date;
import java.util.Random;

/**
 * 主要是一些常见的与业务无关的工具类
 * 
 * @author Lujx
 * @date 创建时间：2016年7月22日
 */
public class CommonUtil {

	/**
	 * 输入长度，随机生成几位的appId,后期可以定死
	 */
	public static String generateAppId(int length) {
		String base = "abcdefghijklmnopqrstuvwxyz0123456789";
		Random random = new Random();
		StringBuffer sb = new StringBuffer();
		for (int i = 0; i < length; i++) {
			int number = random.nextInt(base.length());
			sb.append(base.charAt(number));
		}
		return sb.toString();
	}
	
	
	
	
	/**
	 * 专门比较数据是否可用
	 * @param timestamp 时间戳
	 * @param minutes 过期时间，单位为分钟，所以得换算成毫秒
	 * @return true 可用，未过期 
	 * @throws ParseException
	 */
	
	public static boolean compareTo(Long timestamp, int minutes) throws ParseException {
		
		//将传入的时间戳换算成somedate
		SimpleDateFormat format =  new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");  
	    String d = format.format(timestamp);  
	    Date someDate=format.parse(d);  
		
		Calendar calendar = Calendar.getInstance();
		calendar.setTime(someDate);
		// 获取指定时间（当前为10分钟）后的时间
		calendar.add(Calendar.MINUTE, minutes);

		Date minute_after = calendar.getTime();
		int compareTo = minute_after.compareTo(new Date());
		if (compareTo >= 0) {
			return true;
		} else {
			return false;
		}

	}
	
	//从本地读取文件
	public static String getJson(String filename) {
		InputStream mInputStream = null;
		String resultString = "";
		try {
			mInputStream = new FileInputStream(filename);
			byte[] buffer = new byte[mInputStream.available()];
			mInputStream.read(buffer);
			resultString = new String(buffer);
		} catch (IOException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		} finally {
			try {
				mInputStream.close();
			} catch (IOException e) {
				// TODO Auto-generated catch block
				e.printStackTrace();
			}
		}
		return resultString.toString();
	}
	
	
//	public static void main(String[] args) {
//		
//		String generateApplyId = CommonUtil.generateAppId(8);
//		System.out.println(generateApplyId);
//		long currentTimeMillis = System.currentTimeMillis();
//		SimpleDateFormat sd = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
//		String format = sd.format(currentTimeMillis);
//		System.out.println("转换后日期"+format);
//	}
}
